home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2009 February / PCWFEB09.iso / Software / Linux / Kubuntu 8.10 / kubuntu-8.10-desktop-i386.iso / casper / filesystem.squashfs / usr / bin / bf_tar < prev    next >
Text File  |  2008-06-18  |  2KB  |  70 lines

  1. #! /bin/sh
  2.  
  3. # This file dumps a bogofilter to standard output in POSIX-tar format.
  4. #
  5. # Requires: pax
  6. #
  7. # (C) 2004 by Matthias Andree
  8. # GNU GPL v2.
  9.  
  10. # $Id: bf_tar.in 5957 2005-05-16 11:24:09Z relson $
  11.  
  12. set -e
  13.  
  14. REMOVEBEF=0
  15. REMOVEAFT=0
  16. while [ "$1" ] ; do
  17.     case "$1" in
  18.     -r) REMOVEAFT=1 ;;
  19.     -R) REMOVEBEF=1 ;;
  20.     --) shift ; break ;;
  21.     -*) echo >&2 "`basename $0`: unknown option $1" ; exit 1 ;;
  22.     *) break;
  23.     esac
  24.     shift
  25. done
  26.  
  27. if [ $# -ne 1 ] ; then
  28.     echo >&2 "Usage: `basename $0` [options] bogodir > outfile.tar"
  29.     echo >&2 "   or: `basename $0` [options] bogodir | gzip -c >outfile.tar.gz"
  30.     echo >&2 'Options are:'
  31.     echo >&2 ' -r - remove inactive log files after archiving'
  32.     echo >&2 ' -R - remove inactive log files before archiving (use with caution)'
  33.     exit 1
  34. fi
  35.  
  36. # we could write $1 for the moment being as we demand exactly this
  37. # argument above [ $# -ne 1 ]
  38. BOGOHOME=${1:-.}
  39.  
  40. if [ ! -d "$BOGOHOME" ] ; then
  41.     echo $BOGOHOME must be a directory, not a file
  42.     exit 1
  43. fi
  44.  
  45. nukelogs() {
  46.     bogoutil --db-prune="$BOGOHOME"
  47. }
  48.  
  49. # remove if requested
  50. if [ $REMOVEBEF -eq 1 ] ; then
  51.     nukelogs
  52. else
  53.     bogoutil --db-checkpoint="$BOGOHOME"
  54. fi
  55.  
  56. # database first, then the logs.
  57. # the log MUST be newer than the database, if it's the other way around,
  58. # that state will not be recoverable!
  59. #
  60. # pax options: -w: write archive, -v: verbosely, -x ustar: pick tar format.
  61. (
  62.   c="${BOGOHOME}/DB_CONFIG"
  63.   if [ -f "$c" ] ; then echo "$c" ; fi
  64.   bogofilter -QQ -d "$BOGOHOME" | grep '^wordlist ' | cut -f3 -d,
  65.   bogoutil --db-list-logfiles="$BOGOHOME" all
  66. ) | pax -w -v -x ustar
  67.  
  68. # remove if requested
  69. if [ $REMOVEAFT -eq 1 ] ; then nukelogs ; fi
  70.